package l1j.server.server.command.executor;

import java.util.logging.Logger;

import l1j.server.server.model.L1Teleport;
import l1j.server.server.model.Instance.L1PcInstance;
import l1j.server.server.serverpackets.S_SystemMessage;

public class L1ScreenLagClear implements L1CommandExecutor {
	private static Logger _log = Logger.getLogger(L1Action.class.getName());

	private L1ScreenLagClear() {
	}

	public static L1CommandExecutor getInstance() {
		return new L1ScreenLagClear();
	}

	@Override
	public void execute(L1PcInstance pc, String cmdName, String arg) {
		try {
			if (pc.isPinkName()) {
				pc.sendPackets(new S_SystemMessage("전투중이라 사용할 수 없습니다."));
				return;
			}
			if (pc.getMapId() == 5302) {// <<불가능하게할곳 맵아이디.
				pc.sendPackets(new S_SystemMessage("이곳에서는 사용할 수 없습니다."));
				return;
			}

			long curtime = System.currentTimeMillis() / 1000;
			if (pc.getQuizTime() + 10 > curtime) {
				pc.sendPackets(new S_SystemMessage("10초간의 지연시간이 필요합니다."));
				return;
			}
			L1Teleport.teleport(pc, pc.getX(), pc.getY(), pc.getMapId(),
					pc.getHeading(), false);
			pc.sendPackets(new S_SystemMessage("주변 오브젝트를 재로딩 하였습니다."));
			pc.setQuizTime(curtime);
		} catch (Exception exception) {
			pc.sendPackets(new S_SystemMessage("사용 할 수 없습니다."));
			}
	}
}